<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.prime.com.tr/ui">
    <ui:composition template="Index.xhtml">  
        <ui:define name="content"> 
            <h:body>
                <p:growl id="avisos" showDetail="true"/>
                <h:form id="formEditar">
                    <p:panel header="Cadastro de Locação" id="panelDados">
                        <h:panelGrid columns="1" >
                            <h:outputText value="Código"/>
                            <p:inputText value="#{locacaoHandler.locacao.locCodigo}" disabled="true" size="5"/>
                            <h:outputText value="Data Locação"/>
                            <p:calendar value="#{locacaoHandler.locacao.locData}" required="true" requiredMessage="Campo data locação em branco."
                                        converterMessage="Data partida inválida." pattern="dd/MM/yyyy" locale="pt_BR">
                            </p:calendar>
                            <h:outputText value="Data Prevista Devolução"/>
                            <p:calendar value="#{locacaoHandler.locacao.locdataPrevDevolucao}" required="true" requiredMessage="Campo data prevista locação em branco."
                                        converterMessage="Data partida inválida." pattern="dd/MM/yyyy" locale="pt_BR">
                            </p:calendar>
                            <h:panelGrid columns="1">
                                <h:outputText value="Funcionário"/>
                                <h:selectOneMenu id="funcionario" value="#{locacaoHandler.idFuncionario}" required="true" requiredMessage="Campo funcionario obrigatório." >
                                    <f:selectItem itemValue="" itemLabel="selecione o funcionario"/>
                                    <f:selectItems value="#{funcionarioHandler.listafuncionario()}" var="funcionario"
                                                   itemLabel="#{funcionario.funNome}" itemValue="#{funcionario.funCodigo}">
                                    </f:selectItems>
                                </h:selectOneMenu>
                            </h:panelGrid>
                            <h:panelGrid columns="1">
                                <h:outputText value="Cliente"/>
                                <h:selectOneMenu id="cliente" value="#{locacaoHandler.idCliente}" required="true" requiredMessage="Campo cliente obrigatório." >
                                    <f:selectItem itemValue="" itemLabel="selecione o cliente"/>
                                    <f:selectItems value="#{clienteHandler.listacliente()}" var="cliente"
                                                   itemLabel="#{cliente.cliNome}" itemValue="#{cliente.cliCodigo}">
                                    </f:selectItems>
                                </h:selectOneMenu>
                            </h:panelGrid>
                            <h:outputText value="Pagamento"/>
                            <h:selectOneMenu id="paga" value="#{locacaoHandler.locacao.loccodPagamento}" required="true" requiredMessage="Campo pagamento obrigatório.">
                                <f:selectItem itemLabel="selecione o tipo de pagamento" itemValue="" />                                 
                                <f:selectItem itemLabel="Á vista" itemValue="vista" />
                                <f:selectItem itemLabel="Á prazo" itemValue="prazo" />
                            </h:selectOneMenu>
                            <p:column>
                                <p:commandButton action="#{locacaoHandler.salvar}"  value="Salvar" update="avisos panelDados"  image="ui-icon ui-icon-disk"/>
                                <p:commandButton value="Pesquisar" image="ui-icon-search" action="#{locacaoHandler.listalocacao()}" update="formPesquisa" oncomplete="dlg2.show();"/>
                                <p:commandButton value="Cancelar" image="ui-icon-document" update="panelDados" oncomplete="cancelar.show();"/> 
                            </p:column>
                        </h:panelGrid>
                    </p:panel>
                </h:form>



                <p:panel header="Adicionar Filme" id="panelDadosExemplar" style="background: antiquewhite" >
                    <h:form id="exemplarForm">
                        <h:panelGrid columns="3">
                            <h:panelGrid>
                                <h:outputText value="Categoria"/>
                                <h:selectOneMenu id="categoria" value="#{locacaoHandler.idCategoria}" required="true" requiredMessage="Campo categoria obrigatório." >
                                    <f:selectItem itemValue="" itemLabel="selecione a categoria"/>
                                    <f:selectItems value="#{categoriaHandler.listacategoria()}" var="categoria"
                                                   itemLabel="#{categoria.catDescricao}" itemValue="#{categoria.catCodigo}">
                                    </f:selectItems>
                                    <p:ajax update="filme" listener="#{locacaoHandler.popularFilmes()}"/>
                                </h:selectOneMenu>
                            </h:panelGrid>
                            <h:panelGrid>
                                <h:outputText value="*Filme"/>
                                <h:selectOneMenu id="filme" value="#{locacaoHandler.idFilme}" required="true" requiredMessage="Campo filme obrigatório.">
                                    <f:selectItem itemValue="" itemLabel="selecione um filme"/>  
                                    <f:selectItems value="#{locacaoHandler.filmes}" var="filme" 
                                                   itemLabel="#{filme.filTitulo}" itemValue="#{filme.filCodigo}"/>  
                                </h:selectOneMenu>
                                
                            </h:panelGrid>
                            <h:panelGrid>
                                <h:outputText value="*Exemplar"/>
                                <h:selectOneMenu id="exemplar" value="#{locacaoHandler.idExemplar}" required="true" requiredMessage="Campo filme obrigatório.">
                                    <f:selectItem itemValue="" itemLabel="selecione um filme"/>  
                                    <f:selectItems value="#{locacaoHandler.exemplares}" var="exemplar" 
                                                   itemLabel="#{exemplar.exe_codFilme}" itemValue="#{exemplar.cod_exemplar}"/>  
                                </h:selectOneMenu>
                            </h:panelGrid>

                            <h:panelGrid>
                                <p:commandButton action="#{locacaoHandler.adicionarExemplar()}" update="avisos exemplarForm tabelaExemplarForm" 
                                                 image="ui-icon-plus" title="adicionar"/>

                            </h:panelGrid>
                        </h:panelGrid>
                    </h:form>
                    <h:form id="tabelaExemplarForm">
                        <p:panel>
                            <p:dataTable value="#{locacaoHandler.exemplares}" var="exemplar" id="tabelaExemplar"
                                         emptyMessage="Nenhum filme adicionado.">  
                                <p:column>  
                                    <f:facet name="header">
                                        <h:outputText value="Código" />
                                    </f:facet>  
                                    <h:outputText value="#{exemplar.cod_exemplar}" />
                                </p:column> 
                                <p:column>
                                    <f:facet name="header">
                                        <h:outputText value="Filme" />
                                    </f:facet>  
                                    <h:outputText value="#{exemplar.exe_codFilme.filTitulo}" />
                                </p:column>
                                <p:column style="text-align: center">  
                                    <f:facet name="header">
                                        <h:outputText value="Operação" />
                                    </f:facet>  
                                    <p:commandButton action="#{locacaoHandler.removerExemplar(exemplar)}" 
                                                     immediate="true" update="avisos exemplarForm tabelaExemplarForm" 
                                                     image="ui-icon-trash" title="remover filme"/>
                                </p:column>
                            </p:dataTable>
                        </p:panel>                       
                    </h:form>
                    <p:spacer height="50"/> 
                </p:panel>

                <p:dialog id="dialoglocacao" header="Pesquisar Locacao" hideEffect="drop" height="400" width="1300"  widgetVar="dlg2">  
                    <h:form id="formPesquisa">
                        <p:dataTable id="tabelalocacao" var="l" value="#{locacaoHandler.listalocacao()}" 
                                     emptyMessage="Nenhum registro encontrado." rows="8" 
                                     paginator="true" selectionMode="single">

                            <p:column headerText="Cliente" style="text-align: center">
                                <h:outputText value="#{l.locCodigo}" />
                            </p:column>
                            <p:column filterBy="#{l.loccodCliente}" headerText="Pesquisa por Cliente">  
                                <h:outputText value="#{l.loccodCliente.cliNome}" />  
                            </p:column>
                            <p:column headerText="Data Locação" style="text-align: center">
                                <h:outputText value="#{l.locData}">
                                    <f:convertDateTime type="date" pattern="dd/MM/yyyy" locale="pt_BR"/>
                                </h:outputText>
                            </p:column>
                            <p:column headerText="Data Prevista Devolução" style="text-align: center">
                                <h:outputText value="#{l.locdataPrevDevolucao}">
                                    <f:convertDateTime type="date" pattern="dd/MM/yyyy" locale="pt_BR"/>
                                </h:outputText>
                            </p:column>
                            <p:column headerText="Funcionário" style="text-align: center">
                                <h:outputText value="#{l.loccodFuncionario.funNome}" />
                            </p:column>

                            <p:column headerText="Pagamento" style="text-align: center">
                                <h:outputText value="#{l.loccodPagamento}" />
                            </p:column>
                            <p:column headerText="Categoria" style="text-align: center">
                                <h:outputText value="#{l.loccodCategoria.catDescricao}" />
                            </p:column>
                            <p:column headerText="Filmes" style="text-align: center">
                                <h:outputText value="#{l.exemplares}" />
                            </p:column>
                            <p:column style="text-align: center">
                                <p:commandButton actionListener="#{locacaoHandler.parametroRemover}" image="ui-icon-trash"
                                                 update="avisos" title="excluir registro" oncomplete="confirmacao.show()" immediate="true">  
                                    <f:param id="idParaRemover" value="#{l}"/>
                                </p:commandButton> 
                                <p:commandButton actionListener="#{locacaoHandler.alterar(l)}" onclick="CadastroLocacao.xhtml"
                                                 image="ui-icon-wrench" title="alterar registro" immediate="true">
                                </p:commandButton>
                            </p:column>  
                        </p:dataTable>
                    </h:form>
                </p:dialog>
                <p:confirmDialog message="Deseja realmente excluir registro?" hideEffect="explode" 
                                 header="Excluir" severity="alert" widgetVar="confirmacao" modal="true">
                    <h:form>
                        <p:commandButton value="Sim" oncomplete="confirmacao.hide();" 
                                         ajax="false" action="#{locacaoHandler.remover()}" immediate="true"/>
                        <p:commandButton value="Não" onclick="confirmacao.hide()" type="button" immediate="true"/>
                    </h:form>
                </p:confirmDialog>

                <p:confirmDialog  message="Deseja Cancelar?" hideEffect="drop" modal="true" 
                                  header="Cancelar locacao" severity="info" widgetVar="cancelar">
                    <h:form>
                        <p:commandButton action="#{locacaoHandler.cancelar()}" onclick="cancelar.hide()" value="Sim" ajax="false"/>
                        <p:commandButton value="Não" onclick="cancelar.hide()"  type="button"/>
                    </h:form>
                </p:confirmDialog>
            </h:body>
        </ui:define>
    </ui:composition>
</html>
